
#include "Parameters.h"
////////////////////////////////////////iiiiiiiiiiiiiiiiiiiiiiiiiiiiiii start
unsigned char param_sync;
int param_rssi;
int param_snr;
int param_evm;
int param_ber;
int param_frqerr;
int param_uchan;
unsigned int param_txcnt;
unsigned int param_rxcnt;
unsigned int param_errcnt;
int param_pwrin;
unsigned char param_pgood;
char param_temp;
////////////////////////////////////////iiiiiiiiiiiiiiiiiiiiiiiiiiiiiii end
unsigned char param_PWRL;
int UI_MODE_PORT_;
int UI_ASYNC_BAUD_;
int UI_ASYNC_PARITY_;
int UI_ASYNC_BITS_;
int UI_ASYNC_FLOW_;
int UI_ASYNC_STOP_;

int UI_SPI_BAUD_;
int UI_SPI_DATA_;

int UI_UDEF_EMPTY_;
int WL_WIFI_MODE_;

/*int OPS_PWRS_MODE_;
int OPS_PWRS_TIMER_ ;
int OPS_PWRS_UART_;
int OPS_PWRS_USB_;
int OPS_PWRS_BT_;
int OPS_PWRS_WIFI_;
int OPS_PWRS_UHF_;
int OPS_PWRS_PIN_;
int OPS_PWRS_LVL_;*/

void init_code_params()
{
	llc_sim_rim_init.llc_sim_rim_priority = TX_DATA_PRIORITY_IS_VERY_HIGH;
	llc_sim_rim_init.llc_sim_probability = 0;
	llc_sim_rim_init.llc_sim_waiting_time = 0;

	UI_ASYNC_BAUD_ = ConfigRoot.G_Oper.SG_Data_Interface.param_baud_rate;
	UI_ASYNC_PARITY_ = ConfigRoot.G_Oper.SG_Data_Interface.param_parity;
	UI_ASYNC_BITS_ = ConfigRoot.G_Oper.SG_Data_Interface.param_data_bits;
	UI_ASYNC_FLOW_ = ConfigRoot.G_Oper.SG_Data_Interface.param_flow_control;
	UI_ASYNC_STOP_ = ConfigRoot.G_Oper.SG_Data_Interface.param_stop_bits;


	//OPS_PWRS_MODE_ = ConfigRoot.G_Oper.SG_SleepMode.param_sleep_reg;
	//OPS_PWRS_TIMER_ = ConfigRoot.G_Oper.SG_SleepMode.param_sleep_reg.timer;
	//OPS_PWRS_PIN_ = ConfigRoot.G_Oper.SG_SleepMode.param_sleep_reg.pin;
	//OPS_PWRS_LVL_ = ConfigRoot.G_Oper.SG_SleepMode.param_sleep_reg.lvl;
}
void save_code_params()
{
	ConfigRoot.G_Oper.SG_Data_Interface.param_baud_rate = UI_ASYNC_BAUD_;
	ConfigRoot.G_Oper.SG_Data_Interface.param_parity = UI_ASYNC_PARITY_;
	ConfigRoot.G_Oper.SG_Data_Interface.param_data_bits = UI_ASYNC_BITS_;
	ConfigRoot.G_Oper.SG_Data_Interface.param_flow_control = UI_ASYNC_FLOW_;
	ConfigRoot.G_Oper.SG_Data_Interface.param_stop_bits = UI_ASYNC_STOP_;


	//ConfigRoot.G_Oper.SG_SleepMode.param_sleep_reg = OPS_PWRS_MODE_;
	//ConfigRoot.G_Oper.SG_SleepMode.param_sleep_reg.timer = OPS_PWRS_TIMER_;
	//ConfigRoot.G_Oper.SG_SleepMode.param_sleep_reg.pin = OPS_PWRS_PIN_;
	//ConfigRoot.G_Oper.SG_SleepMode.param_sleep_reg.lvl = OPS_PWRS_LVL_;
}

const Root root =
{//"ROOT"
		{//Groups List
				{"SYS",
						{//Parameter Nodes List
								{"INFO",
									{
											{"MODEL",	PARAM_NONE,	PARAM_NONE,	CODE_STR,	READ_ONLY,	PARAMETER_TYPE_NONE,	0,	NO_FUNC},
											{"DESC",	PARAM_NONE,	PARAM_NONE,	CODE_STR,	READ_ONLY,	PARAMETER_TYPE_NONE,	0,	NO_FUNC},
											{"PCBA",	PARAM_NONE,	PARAM_NONE,	CODE_STR,	READ_ONLY,	PARAMETER_TYPE_NONE,	0,	NO_FUNC},
											{"SOFT",	PARAM_NONE,	PARAM_NONE,	CODE_STR,	READ_ONLY,	PARAMETER_TYPE_NONE,	0,	NO_FUNC},
											{"GMSK",	PARAM_NONE,	PARAM_NONE,	CODE_STR,	READ_ONLY,	PARAMETER_TYPE_NONE,	0,	NO_FUNC},
											{"FSK",		PARAM_NONE,	PARAM_NONE,	CODE_STR,	READ_ONLY,	PARAMETER_TYPE_NONE,	0,	NO_FUNC},
											{"QAM",		PARAM_NONE,	PARAM_NONE,	CODE_STR,	READ_ONLY,	PARAMETER_TYPE_NONE,	0,	NO_FUNC},
											{"ZIGBEE",	PARAM_NONE,	PARAM_NONE,	CODE_STR,	READ_ONLY,	PARAMETER_TYPE_NONE,	0,	NO_FUNC},
											{"MACSRL",	PARAM_NONE,	PARAM_NONE,	CODE_STR,	READ_ONLY,	PARAMETER_TYPE_NONE,	0,	NO_FUNC},
											{"MANSRL",	PARAM_NONE,	PARAM_NONE,	CODE_STR,	READ_ONLY,	PARAMETER_TYPE_NONE,	0,	NO_FUNC},
											{"SECKEY",	PARAM_NONE,	PARAM_NONE,	CODE_STR,	READ_ONLY,	PARAMETER_TYPE_NONE,	0,	NO_FUNC},
									},
									SYS_INFO_PARAMS_COUNT
								},
						},
						SYS_NODES_CNT
				},
				{"UI",
						{//Parameter Nodes List
								{"MODE",
									{
											{"PORT", IS_CODE, &UI_MODE_PORT_, CODE_STR, READ_WRITE, PARAMETER_TYPE_NONE, &UI_MODE_PORT, SET_UI_MODE_PORT},
									},
									UI_MODE_PARAMS_CNT
								},/*
								{"ASYNC",
									{
											{"BAUD",	IS_CODE, &UI_ASYNC_BAUD_,	CODE_INT, READ_WRITE, PARAMETER_TYPE_NONE, &UI_ASYNC_BAUD,		SET_UI_ASYNC_BAUD},
											{"PARITY",	IS_CODE, &UI_ASYNC_PARITY_,	CODE_STR, READ_WRITE, PARAMETER_TYPE_NONE, &UI_ASYNC_PARITY,	SET_UI_ASYNC_PARITY},
											{"DATA",	IS_CODE, &UI_ASYNC_BITS_,	CODE_INT, READ_WRITE, PARAMETER_TYPE_NONE, &UI_ASYNC_DATA,		SET_UI_ASYNC_DATA},
											{"STOP",	IS_CODE, &UI_ASYNC_BITS_,	CODE_STR, READ_WRITE, PARAMETER_TYPE_NONE, &UI_ASYNC_STOP,		SET_UI_ASYNC_STOP},
											{"FLOW",	IS_CODE, &UI_ASYNC_FLOW_,	CODE_STR, READ_WRITE, PARAMETER_TYPE_NONE, &UI_ASYNC_FLOW,		SET_UI_ASYNC_FLOW},
									},
									UI_ASYNC_PARAMS_CNT
								},*/
								{"SPI",
									{
											{"BAUD", IS_CODE, &UI_SPI_BAUD_, CODE_INT, READ_WRITE, PARAMETER_TYPE_NONE, &UI_SPI_BAUD, SET_UI_SPI_BAUD},
											{"DATA", IS_CODE, &UI_SPI_DATA_, CODE_INT, READ_WRITE, PARAMETER_TYPE_NONE, &UI_SPI_DATA, SET_UI_SPI_DATA},
									},
									UI_SPI_PARAMS_CNT
								},
								{"UDEF",
									{
											{"EMPTY", IS_CODE, &UI_UDEF_EMPTY_, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, NO_TABLE, NO_FUNC},
									},
									UI_UDEF_PARAMS_CNT
								},
						},
						UI_NODES_CNT
				},
				{"WL",
						{//Parameter Nodes List
								{"LINK",
										{
												{"UCHAN", (void*)&ConfigRoot.G_Wireless.SG_Uhf.param_channel_num,	IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_UCHAR, NO_TABLE, SET_WL_LINK_CH},
												{"CHAN", (void*)&ConfigRoot.G_Wireless.SG_Uhf.param_carrier_freq_number,	IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_USHORT, NO_TABLE, SET_Current_Channel_FREQ},
												{"PWRB", (void*)&ConfigRoot.G_Wireless.SG_Uhf.param_output_pow,	IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_CHAR, &WL_LINK_PWR, SET_WL_LINK_PWRB/*, (ParameterSystem*)System_WL_LINK_PWR*/},
												{"PWRL", (void*)&param_PWRL,	IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_UCHAR, &WL_LINK_PWR, SET_WL_LINK_PWRL/*, (ParameterSystem*)System_WL_LINK_PWR*/},
												{"SPACE", (void*)&Current_Channel.sym_rate,	(int*)&Current_Channel.sym_rate, INDEX_STR, READ_WRITE, PARAMETER_TYPE_UCHAR, &WL_LINK_SPACE, SET_WL_LINK_SPACE},
												{"RATE", (void*)&Current_Channel.sym_rate,	(int*)&Current_Channel.sym_rate, INDEX_STR, READ_WRITE, PARAMETER_TYPE_UCHAR, &WL_LINK_BAUD, SET_WL_LINK_BAUD},
												//{"SRATE", (void*)&ConfigRoot.G_Wireless.SG_Uhf.param_freq_number_symbolrate,	(int*)&ConfigRoot.G_Wireless.SG_Uhf.param_freq_number_symbolrate, INDEX_STR, READ_WRITE, PARAMETER_TYPE_UCHAR, &WL_LINK_BAUD, SET_WL_LINK_BAUD},
												{"MOD", (void*)&ConfigRoot.G_Wireless.SG_Uhf.param_modulation,	(int *)&ConfigRoot.G_Wireless.SG_Uhf.param_modulation, INDEX_STR, READ_WRITE, PARAMETER_TYPE_UCHAR, &WL_LINK_MOD, SET_WL_LINK_MOD},
												{"FEC", (void*)&ConfigRoot.G_Wireless.SG_Uhf.param_fec,			(int*)&ConfigRoot.G_Wireless.SG_Uhf.param_fec, INDEX_STR, READ_WRITE, PARAMETER_TYPE_UCHAR, &WL_LINK_FEC, SET_WL_LINK_FEC},
												{"PROT", (void*)&ConfigRoot.G_Network.SG_NetProtSet.param_bridging_reg,	(int*)&ConfigRoot.G_Network.SG_NetProtSet.param_bridging_reg, INDEX_STR_REG, READ_WRITE, PARAMETER_TYPE_UCHAR, &WL_LINK_PROT, SET_WL_LINK_PROTOCOL},
												{"SCRAM", (void*)&ConfigRoot.G_Wireless.SG_Uhf.param_scram, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_UCHAR, NO_TABLE, SET_WL_LINK_SCRAM},
												{"MAP", PARAM_NONE,	PARAM_NONE,	NO_TYPE,	READ_ONLY,	PARAMETER_TYPE_NONE,	0,	NO_FUNC},
										},
										WL_LINK_PARAMS_CNT
								},
						},
						WL_NODES_CNT
				},
				{"NET",
						{//Parameter Nodes List
								{"NetPr",
										{
												{"BR_REG", (void*)&ConfigRoot.G_Network.SG_NetProtSet.param_bridging_reg, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_UCHAR, NO_TABLE, SET_NET_NETPR_BRREG},
												{"SNMP_REG", (void*)&ConfigRoot.G_Network.SG_NetProtSet.param_snmp_protocol_reg, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_UCHAR, NO_TABLE, SET_NET_NETPR_SNMPREG},
												{"TIMEOUT", (void*)&ConfigRoot.G_Network.SG_NetProtSet.param_snmp_traptimeout, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_USHORT, NO_TABLE, SET_NET_NETPR_TIMEOUT},
										},
										NET_NETPR_PARAMS_CNT
								},
								{"WiFi",
										{
												{"NET_REG", (void*)&ConfigRoot.G_Network.SG_WiFiSet.network_register, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_UCHAR, NO_TABLE, SET_NET_WIFI_NETREG},
												{"ACC_NAME", (void*)&ConfigRoot.G_Network.SG_WiFiSet.access_point_name, IS_ADDRESS, STRING, READ_WRITE, PARAMETER_TYPE_NONE, NO_TABLE, SET_NET_WIFI_ACCPOINTNAME},
												{"SSID", (void*)&ConfigRoot.G_Network.SG_WiFiSet.ssid, IS_ADDRESS, STRING, READ_WRITE, PARAMETER_TYPE_NONE, NO_TABLE, SET_NET_WIFI_SSID},
										},
										NET_WIFI_PARAMS_CNT
								},
								{"TCPIP",
										{
												{"TCPIP_REG", (void*)&ConfigRoot.G_Network.SG_TCPIPSet.param_tcpip_reg, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_UCHAR, NO_TABLE, SET_NET_TCPIP_REG},
												{"IP", (void*)&ConfigRoot.G_Network.SG_TCPIPSet.param_ip_address, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_NONE, NO_TABLE, SET_NET_TCPIP_IPADDRESS},
												{"MASK", (void*)&ConfigRoot.G_Network.SG_TCPIPSet.param_subnet_mask, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_NONE, NO_TABLE, SET_NET_TCPIP_SUBNETMASK},
												{"GATE", (void*)&ConfigRoot.G_Network.SG_TCPIPSet.param_default_gateway, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_NONE, NO_TABLE, SET_NET_TCPIP_DEFAULTGATEWAY},
												{"DNS", (void*)&ConfigRoot.G_Network.SG_TCPIPSet.param_dns_server, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_NONE, NO_TABLE, SET_NET_TCPIP_DNSSERVER},
										},
										NET_TCPIP_PARAMS_CNT
								},
								{"SECUR",
										{
												{"SEC_TYPE", (void*)&ConfigRoot.G_Network.SG_NetSec.security_type, (int *)&ConfigRoot.G_Network.SG_NetSec.security_type, CODE_STR, READ_WRITE, PARAMETER_TYPE_UCHAR, &NET_SECUR_SECTYPE, SET_NET_SECURITY_SECURITYTYPE},
												{"ENC_TYPE", (void*)&ConfigRoot.G_Network.SG_NetSec.encryption_type, (int *)&ConfigRoot.G_Network.SG_NetSec.security_type, CODE_STR, READ_WRITE, PARAMETER_TYPE_UCHAR, &NET_SECUR_ENCTYPE, SET_NET_SECURITY_ENCRYPTIONTYPE},
												{"SEC_KEY", (void*)&ConfigRoot.G_Network.SG_NetSec.network_security_key, IS_ADDRESS, STRING, READ_WRITE, PARAMETER_TYPE_NONE, NO_TABLE, SET_NET_SECURITY_SECURITYKEY},
										},
										NET_SECURITY_PARAMS_CNT
								},
								{"NCC",
									{
											{"LLTD", (void*)&ConfigRoot.G_Network.SG_NetProtSet.param_bridging_reg, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_UCHAR, NO_TABLE, SET_NET_NETPR_BRREG},
											{"WIFI", (void*)&ConfigRoot.G_Network.SG_NetProtSet.param_snmp_protocol_reg, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_UCHAR, NO_TABLE, SET_NET_NETPR_SNMPREG},
									},
									NET_NCC_PARAMS_CNT
								},
							/*	{"APP",
										{
												{"HTTP", (void*)&ConfigRoot.NetworkSettings.ApplicationProtocols.Httpd.value, IS_ADDRESS, REF_STR, READ_WRITE, PARAMETER_TYPE_NONE, &NET_APP_HTTPD, SET_NET_APP_HTTPD},
												{"TRANS", (void*)&ConfigRoot.NetworkSettings.ApplicationProtocols.Transparent.value, IS_ADDRESS, REF_STR, READ_WRITE, PARAMETER_TYPE_NONE, &NET_APP_TRANS, SET_NET_APP_TRANS},
										},
										NET_APP_PARAMS_CNT
								},
								{"TCP",
										{
												{"IP", (void*)&ConfigRoot.WirelessLink.WiFiSettings.IP.value, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_NONE, NO_TABLE, SET_NET_TCP_IP},
												{"MASK", (void*)&ConfigRoot.WirelessLink.WiFiSettings.Mask.value, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_NONE, NO_TABLE, SET_NET_TCP_MASK},
												{"GATE", (void*)&ConfigRoot.WirelessLink.WiFiSettings.Gate.value, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_NONE, NO_TABLE, SET_NET_TCP_GATE}
										},
										NET_TCP_PARAMS_CNT
								},
								{"MCAST",
										{
												{"IP", (void*)&ConfigRoot.NetworkSettings.TransparentProtocolSettings.MIP.value, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_NONE, NO_TABLE, SET_NET_MCAST_IP},
												{"MASK", (void*)&ConfigRoot.NetworkSettings.TransparentProtocolSettings.MMask.value, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_NONE, NO_TABLE, SET_NET_MCAST_MASK},
												{"PORT", (void*)&ConfigRoot.NetworkSettings.TransparentProtocolSettings.MPort.value, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_UINT, NO_TABLE, SET_NET_MCAST_PORT}
										},
										NET_MCAST_PARAMS_CNT
								},*/
								/*	{"WIFI",
											{
													{"TYPE", IS_CODE, &WL_WIFI_MODE_, CODE_STR, READ_WRITE, PARAMETER_TYPE_NONE, &WL_WIFI_MODE, SET_WL_WIFI_TYPE},
													{"WEP", (void*)&ConfigRoot.WirelessLink.WiFiSettings.WEP.value, IS_ADDRESS, STRING, READ_WRITE, PARAMETER_TYPE_NONE, NO_TABLE, SET_WL_WIFI_WEP},
													{"WPA", (void*)&ConfigRoot.WirelessLink.WiFiSettings.WPA.value, IS_ADDRESS, STRING, READ_WRITE, PARAMETER_TYPE_NONE, NO_TABLE, SET_WL_WIFI_WPA},
											},
											WL_WIFI_PARAMS_CNT
									},*/
								/*	{"BT",
											{
													{"EMPTY", PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, NO_TABLE, NO_FUNC}
											},
											WL_BT_PARAMS_CNT
									},*/
								/*{"DL",
										{
												//{"MNG", (void*)&ConfigRoot.WirelessLink.WirelessLink.Mng.value, IS_ADDRESS, REF_STR, READ_ONLY, PARAMETER_TYPE_SHORT, &NET_DL_MNG, SET_NET_DL_MNG},
												//{"DIST", PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, NO_TABLE, SET_NET_DL_DIST},
												//{"MOD", (void*)&ConfigRoot.G_Wireless.SG_Uhf.param_modulation, IS_ADDRESS, REF_STR, READ_WRITE, PARAMETER_TYPE_SHORT, &NET_DL_MOD, SET_NET_DL_MOD},
												//{"FEC", PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, SET_NET_DL_FEC}
										},
										NET_DL_PARAMS_CNT

								},*/
						},
						NET_NODES_CNT
				},
				{"STATE",
					      {//Parameter Nodes List
					    		{"STS",
					    				{
					    						{"SYNC", (void*)&param_sync, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_UCHAR, NO_TABLE, NO_FUNC},
					    						{"RSSI", (void*)&param_rssi, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_INT, NO_TABLE, NO_FUNC},
					    						{"SNR", (void*)&param_snr, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_INT, NO_TABLE, NO_FUNC},
					    						{"EVM", (void*)&param_evm, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_INT, NO_TABLE, NO_FUNC},
					    						{"BER", (void*)&param_ber, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_INT, NO_TABLE, NO_FUNC},
					    						{"FRQERR", (void*)&param_frqerr, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_INT, NO_TABLE, NO_FUNC},
					    						{"UCHAN", (void*)&param_uchan, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_INT, NO_TABLE, NO_FUNC},
					    				},
					    				STATE_STS_PARAMS_CNT
					    		},
					    		{"STAT",
					    				{
					    						{"TXCNT", (void*)&param_txcnt, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_UINT, NO_TABLE, NO_FUNC},
					    						{"RXCNT", (void*)&param_rxcnt, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_UINT, NO_TABLE, NO_FUNC},
					    						{"ERRCNT", (void*)&param_errcnt, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_UINT, NO_TABLE, NO_FUNC},
					    				},
					    				STATE_STAT_PARAMS_CNT
					    		},
					    		{"SYSSTS",
					    				{
					    						{"PWRIN", (void*)&param_pwrin, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_INT, NO_TABLE, NO_FUNC},
					    						{"PGOOD", (void*)&param_pgood, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_UCHAR, NO_TABLE, NO_FUNC},
					    						{"TEMP", (void*)&param_temp, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_CHAR, NO_TABLE, NO_FUNC},
					    				},
					    				STATE_SYSSTS_PARAMS_CNT
					    		},
					      },
					      STATE_NODES_CNT
				},
				{"OPS",
						{//Parameter Nodes List
								{"ID",
										{
												{"USER", (void*)&ConfigRoot.G_Oper.SG_DeviceIndividualization.param_user, IS_ADDRESS, STRING, READ_ONLY, PARAMETER_TYPE_NONE, NO_TABLE, SET_OPS_ID_USER},
												{"UNIT", (void*)&ConfigRoot.G_Oper.SG_DeviceIndividualization.param_unit, IS_ADDRESS, STRING, READ_ONLY, PARAMETER_TYPE_NONE, NO_TABLE, SET_OPS_ID_UNIT},
												{"LOC", (void*)&ConfigRoot.G_Oper.SG_DeviceIndividualization.param_loc, IS_ADDRESS, STRING, READ_ONLY, PARAMETER_TYPE_NONE, NO_TABLE, SET_OPS_ID_LOC},
										},
										OPS_ID_PARAMS_CNT
								},
								{"SLEEP",
										{
												{"MODE", (void*)&ConfigRoot.G_Oper.SG_SleepMode.param_sleep_reg,	(int *)&ConfigRoot.G_Oper.SG_SleepMode.param_sleep_reg, INDEX_STR_INT, READ_WRITE, PARAMETER_TYPE_UCHAR, &OPS_PWRS_MODE, SET_OPS_PWRS_MODE},
												//{"TIMER", IS_CODE, &OPS_PWRS_TIMER_, CODE_STR, READ_WRITE, PARAMETER_TYPE_NONE, 	&OPS_PWRS_TIMER, 	SET_OPS_PWRS_TIMER},
												//{"UART", IS_CODE, &OPS_PWRS_UART_ , CODE_STR, READ_WRITE, PARAMETER_TYPE_NONE,	&OPS_PWRS_UART, 	SET_OPS_PWRS_UART},
												//{"USB", IS_CODE, &OPS_PWRS_USB_, CODE_STR, READ_WRITE, PARAMETER_TYPE_NONE,	&OPS_PWRS_USB, 	SET_OPS_PWRS_USB},
												//{"BT", IS_CODE, &OPS_PWRS_BT_, CODE_STR, READ_WRITE, PARAMETER_TYPE_NONE,	&OPS_PWRS_BT, 	SET_OPS_PWRS_BT},
												//{"WIFI", IS_CODE, &OPS_PWRS_WIFI_ , CODE_STR, READ_WRITE, PARAMETER_TYPE_NONE, 	&OPS_PWRS_WIFI, 	SET_OPS_PWRS_WIFI},
												//{"UHF", IS_CODE, &OPS_PWRS_UHF_, CODE_STR, READ_WRITE, PARAMETER_TYPE_NONE, 	&OPS_PWRS_UHF, 	SET_OPS_PWRS_UHF},
												//{"PIN", IS_CODE, &OPS_PWRS_PIN_, CODE_STR, READ_WRITE, PARAMETER_TYPE_NONE, 	&OPS_PWRS_PIN,	SET_OPS_PWRS_PIN},
												//{"LVL", IS_CODE, &OPS_PWRS_LVL_, CODE_INT, READ_WRITE, PARAMETER_TYPE_NONE, 	&OPS_PWRS_LVL, 	SET_OPS_PWRS_LVL},
												{"QUIET", (void*)&ConfigRoot.G_Oper.SG_SleepMode.param_quit, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_UCHAR, NO_TABLE, SET_OPS_PWRS_QUIET},
												{"TIMER", (void*)&ConfigRoot.G_Oper.SG_SleepMode.param_wakeup, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_UCHAR, NO_TABLE, SET_OPS_PWRS_RTC},
										},
										OPS_PWRS_PARAMS_CNT
								},
						},
						OPS_NODES_CNT
				},

//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//================================================================================================================================================================================================================================================================================================================================================================
//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

				{"MON",
						{//Parameter Nodes List

//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

								{"ENV",
                                        {
                                        		{"PWIN",PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC},
                                        		{"RFPG",PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC}
                                        },
                                        MON_ENV_PARAMS_CNT
								},

//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

								{"UHF",
								    {
								        {"RSSI",PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC},
								        {"FREQ",PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC},
								        {"SNR",PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC},
								        {"BER",PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC},
								        {"EVM",PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC},
								        {"TCXO",PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC},
								        {"RXC",PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC},
								        {"TXC",PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC},
								        {"RXB",PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC},
								        {"TXB",PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC}
								    },
								    MON_UHF_PARAMS_CNT
								},

//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

								{"WIFI",
								    {
								        {"RSSI",PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC},
								        {"IP",PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC},
								        {"MASK",PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC},
								        {"GATE",PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC}
								    },
								    MON_WIFI_PARAMS_CNT
								}

//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

						},
						MON_NODES_CNT
				},

//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//================================================================================================================================================================================================================================================================================================================================================================
//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#ifdef DEBUGING
				{"DBG",
						{//Parameter Nodes List
								{"ML",
										{
												{"ADDRESS",	PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC},
										},
										DBG_NODES_PARAMS_CNT
								},
								{"BB",
										{
												{"ADDRESS",	PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC},
										},
										DBG_NODES_PARAMS_CNT
								},
								{"LO",
										{
												{"ADDRESS",	PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC},
										},
										DBG_NODES_PARAMS_CNT
								},
								{"RF",
										{
												{"ADDRESS",	PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC},
										},
										DBG_NODES_PARAMS_CNT
								},
								{"IF",
										{
												{"ADDRESS",	PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC},
										},
										DBG_NODES_PARAMS_CNT
								},
								{"D_LINK",
										{
												{"PMP",	PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC},
												{"TSHIFT",	PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC},
												{"CRTPIN",	PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC},
										},
										DBG_D_LINK_PARAMS_CNT
								},
								{"CYPHER",
										{
												{"GET",	PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC},
												{"RSA_GET",	PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC},
												{"GET2",	PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC},
												{"SET",	PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC},
												{"SEND",	PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC},
												{"RECV",	PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC},
										},
										DBG_RSA_PARAMS_CNT
								},
								{"SKY",
										{
												{"F_VCO",	PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC},
												{"F_CRYS",	PARAM_NONE, PARAM_NONE, PARAM_NONE, PROTECTED, PARAMETER_TYPE_NONE, PARAM_NONE, NO_FUNC},
										},
										DBG_SKY_PARAMS_CNT
								},
						},
						DBG_NODES_CNT
				},
#endif//DEBUGING
////////////////////////////////////////////////////////////////////////////////////////////////////////
				{"ADV",
						{//Parameter Nodes List
								{"DPORT",
										{
												{"PRIME", (void*)&ConfigRoot.G_Oper.SG_Data_Interface.param_primary_interface_select,	(int *)&ConfigRoot.G_Oper.SG_Data_Interface.param_primary_interface_select, INDEX_STR, READ_WRITE, PARAMETER_TYPE_UCHAR, &ADV_DPORT_PRIME, SET_ADV_DPORT_PRIME},
												{"TIMEOUT", (void*)&ConfigRoot.G_Oper.SG_Data_Interface.param_interface_timeout, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_UCHAR, NO_TABLE, SET_WL_DPORT_INTERFACE_TIMEOUT},
												{"ECHO", (void*)&echo_mode, (int*)&echo_mode, INDEX_STR, READ_WRITE, PARAMETER_TYPE_UCHAR, &ADV_DPORT_ECHO, SET_ADV_DPORT_ECHO},
												{"RATE", (void*)&UI_ASYNC_BAUD_,	IS_ADDRESS, INDEX_INT, READ_WRITE, PARAMETER_TYPE_INT, &ADV_DPORT_RATE, SET_ADV_DPORT_RATE},
												{"BITS", (void*)&UI_ASYNC_BITS_,	IS_ADDRESS, INDEX_INT, READ_WRITE, PARAMETER_TYPE_INT, &ADV_DPORT_BITS, SET_ADV_DPORT_BITS},
												{"PARITY",(void*)&UI_ASYNC_PARITY_,	IS_ADDRESS, INDEX_STR_INT, READ_WRITE, PARAMETER_TYPE_INT, &ADV_DPORT_PARITY, SET_ADV_DPORT_PARITY},
												{"FLOW", (void*)&UI_ASYNC_FLOW_,	IS_ADDRESS, INDEX_STR_INT, READ_WRITE, PARAMETER_TYPE_INT, &ADV_DPORT_FLOW, SET_ADV_DPORT_FLOW},
												{"STOP", (void*)&UI_ASYNC_STOP_,	IS_ADDRESS, INDEX_STR_INT, READ_WRITE, PARAMETER_TYPE_INT, &ADV_DPORT_STOP, SET_ADV_DPORT_STOP},
										},
										ADV_NODES_DPORT_CNT
								},
								{"XMOD",
										{
												{"IMAGE", IS_ADDRESS,	IS_ADDRESS, INDEX_STR, READ_WRITE, PARAMETER_TYPE_UCHAR, &ADV_XMOD_IMAGE, /*SET_ADV_XMOD_IMAGE*/},
												{"CFGDN", IS_ADDRESS,	IS_ADDRESS, INDEX_STR, READ_WRITE, PARAMETER_TYPE_UCHAR, &ADV_XMOD_CFGDN, /*SET_ADV_XMOD_CFGDN*/},
												{"CFGUP", IS_ADDRESS,	IS_ADDRESS, INDEX_STR, READ_WRITE, PARAMETER_TYPE_UCHAR, &ADV_XMOD_CFGUP, /*SET_ADV_XMOD_CFGUP*/},
										},
										ADV_NODES_XMOD_CNT
								},
								{"TEST",
										{
												{"TSTSGL", IS_ADDRESS,	IS_ADDRESS, INDEX_STR, READ_WRITE, PARAMETER_TYPE_UCHAR, &ADV_TEST_TSTSGL, SET_ADV_TEST_TSTSGL},
												{"SETFRQ", IS_ADDRESS,	IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_UINT, NO_TABLE, SET_ADV_TEST_SETFRQ},
										},
										ADV_TEST_PARAMS_CNT
								},
								{"SIM",
										{
												{"PRIOR", (void*)&llc_sim_rim_init.llc_sim_rim_priority,	IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_UCHAR, NO_TABLE, SET_ADV_SIM_PRIOR},
												{"PROB", (void*)&llc_sim_rim_init.llc_sim_probability, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_UCHAR, NO_TABLE, SET_ADV_SIM_PROB},
												{"WTIME", (void*)&llc_sim_rim_init.llc_sim_waiting_time, IS_ADDRESS, INTEGER, READ_WRITE, PARAMETER_TYPE_UCHAR, NO_TABLE, SET_ADV_SIM_WTIME},
										},
										ADV_NODES_SIM_CNT
								},
						},
						ADV_NODES_CNT
				},
		},
		GROUPS_COUNT
};


const char* MinMaxValues[MinMaxValues_size] =
{
		/*STATE start*/
		//STS
		"SYNC", "0", "0", "\b\b\b\b\b\b\b\b1 - Indicates the link established,\r\n\t\t  0 - if the link is not established yet",
		"RSSI", "0", "0", "\b\b\b\b\b\b\b\b-30 dBm to -120 dBm - Indicates the Receive Signal Strength.\r\n\t\t  -147 dBm if there is no signal",
		"SNR", "0", "0", "\b\b\b\b\b\b\b\bThe received Signal-to-Noise-Ratio in dB",
		"EVM", "0", "0", "\b\b\b\b\b\b\b\bThe received signal Error Vector Magnitude in %",
		"BER", "0", "0", "\b\b\b\b\b\b\b\b1.0E-6 to 9.9E-3 - Indicates the BER level",
		"FRQERR", "0", "0", "\b\b\b\b\b\b\b\bCarrier frequency offset error in Hz",
		"UCHAN", "1", "32", "Displays the selected or currently scanned\r\n\t\t  frequency channel",
		//STAT
		"TXCNT", "0", "0", "\b\b\b\b\b\b\b\bTransmit counter",
		"RXCNT", "0", "0", "\b\b\b\b\b\b\b\bReceive counter",
		"ERRCNT", "0", "0", "\b\b\b\b\b\b\b\bError counter",
		//SYSSTS
		"PWRIN", "0", "0", "\b\b\b\b\b\b\b\bThe voltage level on power-in line is displayed in V",
		"PGOOD", "0", "1", "indicating the output status of DC/DC regulator\r\n\t\t  supplying RF circuit",
		"TEMP", "0", "0", "\b\b\b\b\b\b\b\bThe temperature level inside of the radio enclosure",
		/*STATE end*/
		"PWRB", "0", "0", "\b\b\b\b\b\b\b\bRF output Power in dBm",
		"PWRL", "1", "8", "",
		"UCHAN", "0", "32", "Selects the channel number",
		"CHAN", "0", "8801", "Selects the frequency channel",
		"TIMEOUT", "0", "255", "0 - data transmission over the radio link without\r\n\t\t                waiting for EOT from DTE\r\n\t\t            (1 - 255) - The maximal length of pause between\r\n\t\t                        two bytes consecutively received via\r\n\t\t                        serial data port from DTE",
		"SCRAM", "0", "255", "0 - No Scrambling (a default setting)\r\n\t\t           (1 - 255) - Seed for Pseudo-Random Sequence Generator",
		"QUIET", "0", "255", "The length of going to sleep mode",
		"TIMER", "0", "255", "Wakeup by internal timer",
		//,"SETFRQ", "415000000", "470000000", "Set the carrier frequency"
		/*llc start*/
		"PRIOR", "0", "7", "The priority of sending RIM response",
		"PROB", "0", "7", "The probability of sending RIM response",
		"WTIME", "0", "255", "The Slaves are allowed to send request if they are\r\n\t\t            waiting longer than the waiting time is",
		/*llc end*/
};
const char* GetMinMaxValues(const char* command_name, const char* name, int* min, int* max)
{
	int i = 0; *min = *max = 0;
	if(!strcmp(command_name, "LINK"))
	{
		i = 13*4;
	}
	for(; i < MinMaxValues_size; i += 4)
	{
		if(!strcmp(name, MinMaxValues[i]))
		{
			*min = atoi((char*)MinMaxValues[i+1]);
			*max = atoi((char*)MinMaxValues[i+2]);
			return MinMaxValues[i+3];
		}
	}
	return 0;
}

const char* GetUnsignedMinMaxValues(const char* command_name, const char* name, unsigned int* min, unsigned int* max)
{
	unsigned int i = 0; *min = *max = 0;
	if(!strcmp(command_name, "LINK"))
	{
		i = 13*4;
	}
	for(; i < MinMaxValues_size; i += 4)
	{
		if(!strcmp(name, MinMaxValues[i]))
		{
			*min = atoi((char*)MinMaxValues[i+1]);
			*max = atoi((char*)MinMaxValues[i+2]);
			return MinMaxValues[i+3];
		}
	}
	return 0;
}

Parameter* GetParameter(ParameterNode2* node, char* Name)
{
	if(node == 0)
		return 0;

	int i;
	for(i = 0; i < node->param_count ; ++i)
	{
		if(!strcmp((char *)(node->Parameters[i].Name), (char *)Name))
			break;
	}
	if(i == node->param_count)
		return 0;
	else
		return &(node->Parameters[i]);
}
ParameterNode2* GetParameterNode(ParameterNode1* grp, char* Name)
{
	if(grp == 0)
		return 0;

	int i;
	for(i = 0 ; i < grp->param_nod_count ; ++i)
	{
		if(!strcmp((char *)grp->ParameterNodes[i].Name, (char *)Name))
			break;
	}
	if(i == grp->param_nod_count)
		return 0;
	else
		return &(grp->ParameterNodes[i]);
}
ParameterNode1* GetGroup(char* Name)
{
	int i;
	for(i = 0 ; i < root.grp_count ; ++i)
	{
		if(!strcmp((char *)root.Groups[i].Name, (char *)Name))
			break;
	}
	if(i == root.grp_count)
		return 0;
	else
		return (ParameterNode1 *)(&(root.Groups[i]));
}

Parameter* GetParameterByName(char* Grp, char* Node, char* Name)
{
	ParameterNode1* grp = GetGroup(Grp);
	if(grp != 0)
	{
		ParameterNode2* node = GetParameterNode(grp, Node);
		if(node != 0)
		{
			Parameter* param = GetParameter(node, Name);
			if(param != 0)
				return param;
			else
				return 0;
		}
		return 0;
	}

	return 0;
}
ParameterNode2* GetParameterNodeByName(char* Grp, char* Node)
{
	ParameterNode1* grp = GetGroup(Grp);
	if (grp != 0)
	{
		ParameterNode2* node = GetParameterNode(grp, Node);
		if(node != 0)
			return node;
		else
			return 0;
	}
	return 0;
}
ParameterNode1* GetGroupByName(char* Grp)
{
	ParameterNode1* grp = GetGroup(Grp);
	if (grp != 0)
	{
		return grp;
	}
	return 0;
}

char split_string_space(char* source, char* dest, int index)
{
	int i, j, k;
	int len = strlen(source);
	for(i = 0, j = 0, k = 0; i <= len; ++i)
	{
		if(source[i] != ' ' && source[i] != '\0')
		{
			if(k == index)
			{
				dest[j] = source[i];
			}
			++j;
		}
		else
		{
			if(j != 0)
			{
				if(k == index)
				{
					dest[j] = '\0';
					return dest[0];
				}
				else
					++k;
				j = 0;
			}
		}
	}
	return dest[0];
}
int split_string_space_count(char* source)
{
	int i, j, k;
	int len = strlen(source);
	for(i = 0, j = 0, k = 0; i <= len; ++i)
	{
		if(source[i] != ' ' && source[i] != '\0')
		{
			++j;
		}
		else
		{
			if(j != 0)
			{
				j = 0;
				++k;
			}
		}
	}
	return k;
}

int analys_param(char* path)
{
	int count = split_string_space_count(path);

	group[0] = '\0';
	node[0] = '\0';
	parameter[0] = '\0';
	if(count == 0)
	{
		group[0] = '\0';
		node[0] = '\0';
		parameter[0] = '\0';

		groupNodeParam.CurrentGroup = 0;
		groupNodeParam.CurrentNode = 0;
		groupNodeParam.CurrentParam = 0;
		return 0;
	}
	else if (count == 1)
	{
		split_string_space(path, group, 0);
		node[0] = '\0';
		parameter[0] = '\0';

		groupNodeParam.CurrentGroup = Group();
		groupNodeParam.CurrentNode = 0;
		groupNodeParam.CurrentParam = 0;
		return 1;
	}
	else if (count == 2)
	{
		split_string_space(path, group, 0);
		split_string_space(path, node, 1);
		parameter[0] = '\0';

		groupNodeParam.CurrentGroup = Group();
		groupNodeParam.CurrentNode = Node();
		groupNodeParam.CurrentParam = 0;
		return 2;
	}
	else if (count == 3)
	{
		split_string_space(path, group, 0);
		split_string_space(path, node, 1);
		split_string_space(path, parameter, 2);

		groupNodeParam.CurrentGroup = Group();
		groupNodeParam.CurrentNode = Node();
		groupNodeParam.CurrentParam = Param();
		return 3;
	}
	else if (count > 3)
		return -1;

	return 0;
}

ParameterNode1* Group()
{
	return GetGroup(group);
}
ParameterNode2* Node()
{
	return GetParameterNode(GetGroup(group), node);
}
Parameter* Param()
{
	return GetParameter(GetParameterNode(GetGroup(group), node) , parameter);
}






